<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>实时报警-信号集中监测系统</title>
		<meta name="renderer" content="webkit">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
		<link rel="stylesheet" href="../../static/css/font.css">
		<link rel="stylesheet" href="../../static/css/weadmin.css">

		<!-- 让IE8/9支持媒体查询，从而兼容栅格 -->
		<!--[if lt IE 9]>
	      <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
	      <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
	    <![endif]-->
	</head>

	<body>
		<div class="weadmin-nav">
			<span class="layui-breadcrumb">
        <a href="">首页</a>
        <a href="">报警管理</a>
        <a><cite>实时报警</cite></a>
      </span>
			<!-- <a class="layui-btn layui-btn-sm" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
				<i class="layui-icon" style="line-height:30px">ဂ</i></a> -->
		</div>
		<div class="weadmin-body">
			<div class="layui-row">
				<!-- <form class="layui-form layui-col-md12 we-search">
					<div class="layui-inline">
						<input class="layui-input" placeholder="开始日" name="start" id="start">
					</div>
					<div class="layui-inline">
						<input class="layui-input" placeholder="截止日" name="end" id="end">
					</div>
					<div class="layui-input-inline">
						<select name="contrller">
							<option>支付状态</option>
							<option>已支付</option>
							<option>未支付</option>
						</select>
					</div>
					<div class="layui-input-inline">
						<select name="contrller">
							<option>支付方式</option>
							<option>支付宝</option>
							<option>微信</option>
							<option>货到付款</option>
						</select>
					</div>
					<div class="layui-input-inline">
						<select name="contrller">
							<option value="">订单状态</option>
							<option value="0">待确认</option>
							<option value="1">已确认</option>
							<option value="2">已收货</option>
							<option value="3">已取消</option>
							<option value="4">已完成</option>
							<option value="5">已作废</option>
						</select>
					</div>
					<div class="layui-inline">
						<input type="text" name="username" placeholder="请输入订单号" autocomplete="off" class="layui-input">
					</div>
					<button class="layui-btn" lay-submit="" lay-filter="sreach"><i class="layui-icon">&#xe615;</i></button>
				</form> -->
			</div>
			<!-- <div class="weadmin-block">
				<button class="layui-btn layui-btn-danger" onclick="delAll()"><i class="layui-icon"></i>批量删除</button>
				<button class="layui-btn" onclick="WeAdminShow('添加订单','./add.html')"><i class="layui-icon"></i>添加</button>
				<span class="fr" style="line-height:40px"></span>
			</div> -->
			<!-- <table class="layui-table" id="table-joblog" lay-data="{height: 'full-200', cellMinWidth: 80, page: true, limit:30, url:'/v1/joblog'}"></table> -->
			<table class="layui-table" id="table-realtimealarm">
				<!-- <thead>
					<th lay-data="{type:'checkbox'}">ID</th>
					<th lay-data="{field:'Id', width:80, sort: true}">ID</th>
					<th lay-data="{field:'StationName', width:80, sort: true}">站名</th>
					<th lay-data="{field:'Level', width:100, sort: true}">报警级别</th>
					<th lay-data="{field:'DevName', width:160, sort: true}">设备名</th>
					<th lay-data="{field:'Summary', width:180, sort: true}">报警描述</th>
					<th lay-data="{field:'Info', width:300, sort: true}">报警详情</th>
					<th lay-data="{field:'BeginTime', width:160, sort: true, templet:'<div>{{TimeFormat(d.BeginTime)}}</div>'}">开始时间</th>
					<th lay-data="{field:'EndTime', width:160, sort: true, templet:'<div>{{TimeFormat(d.EndTime)}}</div>'}">结束时间</th>
				</thead> -->
			</table>
			<!-- <div class="page">
				<div>
					<a class="prev" href="">&lt;&lt;</a>
					<a class="num" href="">1</a>
					<span class="current">2</span>
					<a class="num" href="">3</a>
					<a class="num" href="">489</a>
					<a class="next" href="">&gt;&gt;</a>
				</div>
			</div> -->

		</div>

		<script src="../../lib/layui/layui.js" charset="utf-8"></script>
		<script src="../../static/js/date-format.js" type="text/javascript" charset="utf-8"></script>
		<script>
            var webSocket = null;
            InitWebSocket();
			var table;
			var tableData;

			layui.extend({
				admin: '{/}../../static/js/admin'
			});
			layui.use(['laydate','jquery','admin','table'], function() {
				var laydate = layui.laydate,
					$ = layui.jquery,
					admin = layui.admin;
				table = layui.table;

				//执行一个laydate实例
				laydate.render({
					elem: '#start' //指定元素
				});
				//执行一个laydate实例
				laydate.render({
					elem: '#end' //指定元素
				});

				table.render({
					elem: '#table-realtimealarm',
					data: tableData,
					page: true,
					even: true, //隔行背景
					cols: [[
						{field:'StationName', title: '站名', width:80, sort: true},
						{field:'Level', title: '报警级别', width:100, sort: true},
						{field:'DevName', title: '设备名', sort: true},
						{field:'Summary', title: '报警描述', sort: true},
						{field:'Info', title: '报警详情', sort: true},
						{field:'BeginTime', title: '开始时间', width:160, sort: true},
						{field:'EndTime', title: '结束时间', width:160, sort: true}
					]],
					data:[
		
					]
				});
				
				/*用户-停用*/
				function member_stop(obj, id) {
					layer.confirm('确认要停用吗？', function(index) {
						if($(obj).attr('title') == '启用') {
							//发异步把用户状态进行更改
							$(obj).attr('title', '停用')
							$(obj).find('i').html('&#xe62f;');
	
							$(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
							layer.msg('已停用!', {
								icon: 5,
								time: 1000
							});
	
						} else {
							$(obj).attr('title', '启用')
							$(obj).find('i').html('&#xe601;');
	
							$(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
							layer.msg('已启用!', {
								icon: 5,
								time: 1000
							});
						}
					});
				}
	
				/*用户-删除*/
				function member_del(obj, id) {
					layer.confirm('确认要删除吗？', function(index) {
						//发异步删除数据
						$(obj).parents("tr").remove();
						layer.msg('已删除!', {
							icon: 1,
							time: 1000
						});
					});
				}
	
				function delAll(argument) {
					var data = tableCheck.getData();
					layer.confirm('确认要删除吗？' + data, function(index) {
						//捉到所有被选中的，发异步进行删除
						layer.msg('删除成功', {
							icon: 1
						});
						$(".layui-form-checked").not('.header').parents('tr').remove();
					});
				}
			});

			function TimeFormat(d) {
				var date = new Date(d);
				var min = new Date("0001-01-01T00:00:00");
				return date.getTime() == min.getTime() ? "" : date.Format("yyyy-MM-dd hh:mm:ss");
			}

			function InitWebSocket(){
            var hostname = window.location.hostname;
			var search = window.location.search;

			search = search.substring(1, search.length);
			var user = search.split("&")[0].split("=")[1];
             
            var url = 'ws://' + hostname + '/websocket/' + user;

            webSocket = new WebSocket(url);	

            webSocket.binaryType = 'arraybuffer';

            webSocket.onopen = function(event){
                onOpen(event)
            };
    
            webSocket.onmessage = function(event){
                onMessage(event)
			};
			
			webSocket.onclose = function(event){
                onClose(event)
            };

            //定时发送心跳
            var time = window.setInterval(Heartbeat, 30000);
        }

        function onMessage(event){            
			var ai = JSON.parse(event.data); 
			tableData = { 
				StationName:ai.DBM, 
				Level:ai.Level, 
				DevName:ai.DeviceTypeName == null ? ai.DeviceName : ai.DeviceTypeName + "(" + ai.DeviceName + ")",
				Summary:ai.Summary,
				Info:ai.Info,
				BeginTime:TimeFormat(ai.BeginTime),
				EndTime:ai.IsVolatile == true ? "—— ——" : TimeFormat(ai.EndTime)
			};

			var cache = table.cache["table-realtimealarm"];
			cache.push(tableData);

			table.reload('table-realtimealarm', {
				data:cache
			});
        }
        
        function onOpen(event){
            
		}   
		
		function onClose(event){
			console.log(event);
		}

        //定时执行的任务
        function Heartbeat(){
            if(webSocket.readyState === webSocket.OPEN){               
                webSocket.send(new Blob(["Hearbeat"], { type: "" }));
            }
        }			
		</script>
	</body>

</html>